package com.company.adapter.obj;

/**
 * 适配器类
 */
public class AdapterByObject implements TargetByObject {

    // 被适配者类是对象适配器的一个属性，如果有多个被适配者类继续增加属性即可，类适配器模式缺点是只能适配一个被适配者类
    private AdapteeByObject adaptee = new AdapteeByObject();

    /**
     * 老的方法，在此处做转换相关业务，最终还是调用老方法业务逻辑，达到适配效果，符合开闭原则
     */
    @Override
    public void methodA() {
        // do something ......
        adaptee.methodA();
        // do something ......
    }

    /**
     * 新的方法，和老的类方法不一样
     */
    @Override
    public void methodB() {
        System.out.println("新方法 methodB");
    }

    /**
     * 新的方法，和老的类方法不一样
     */
    @Override
    public void methodC() {
        System.out.println("新方法 methodC");
    }

}
